package com.dx.financehy.utils;

import cn.hutool.core.util.StrUtil;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * <pre>
 * @描述：
 * @作者：CLD
 * @创建时间：2021-01-15 14:49
 * </pre>
 **/
public class UploadUtil {

    /**
     * 生成唯一的文件名
     */
    public static String getFileName(String orgFileName) {
        // 将文件名的前面部分进行截取：xx.jpg   --->  .jpg
        int idx = orgFileName.lastIndexOf(".");
        String ext = orgFileName.substring(idx);
//        String uuidFileName = UUID.randomUUID().toString().replace("-", "") + ext;
        String newFileName = CodeGenUtil.gen("M_") + ext;

        return newFileName;
    }

    /**
     * 生成文件key
     *
     * @param orgFileName 原始文件名，xxx.jpg
     * @return 格式：yyyy/xxxxxxx.jpg
     */
    public static String getObjectKey(String orgFileName) {

        String newFileName = getFileName(orgFileName);

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
        String y = sdf.format(new Date());
        String objectKey = y + File.separator + newFileName;

        return objectKey;
    }

    /**
     * 根据文件路径获取bucket和objectKey
     * <p>
     * filePath=1313131/2021/6b8ce58feffe40fabc0743f42c47df27.jpg
     *
     * @param filePath 文件路径
     * @return <p>
     * bucket=1313131
     * objectKey=2021/6b8ce58feffe40fabc0743f42c47df27.jpg
     */
    public static String[] getBucketAndObjKeyByFilePath(String filePath) throws Exception {
        if (StrUtil.isEmpty(filePath)) {
            new RuntimeException("文件路径不能为空");
        }
        int firstIndex = filePath.indexOf("/") > 1 ? filePath.indexOf("/") : filePath.indexOf("\\");
        String bucket = filePath.substring(0, firstIndex);
        String objectKey = filePath.substring(firstIndex + 1);

        return new String[]{bucket, objectKey};
    }

}
